const int ATTACKER_LEVEL = 85;
const int TARGET_LEVEL = 88;

//Out of Combat Mp5 formula: MP5 = BASE_MP5_CONST+Spirit*SQRT(Int)*BASE_MANA_REGEN
//In Combat Mp5 = BASE_MP5_CONST
const f32 BASE_MANA = 20000;
const f32 BASE_MANA_REGEN = .016725f; 
const f32 BASE_MP5_CONST = 400;

//RATINGS

const f32 EXPERTISE_RATING_PER_EXPERTISE = 102.445739746093750f;

const f32 INTELLECT_TO_SPELLCRIT = 0.00154105f;
const f32 INTELLECT_PER_SPELL_CRIT = 648.907592773437500;

//1 str is 1 ap
const int STRENGTH_TO_AP = 1;

const f32 AGILITY_TO_CRIT = 0.307806f;
const int AGILITY_TO_AP = 2;

const f32 CRIT_RATING_TO_CRIT = 0.557787f;
const f32 CRIT_RATING_TO_SPELLCRIT = 0.557787f;
const f32 CRIT_TO_CRIT_RATING = 179.280044555664062;

const f32 HIT_RATING_TO_HIT = 0.976126f;
const f32 HIT_RATING_TO_SPELLHIT = 0.976126f;
const f32 HIT_TO_HIT_RATING = 102.445739746093750;

const f32 MELEE_HASTE_RATING_TO_HASTE = 0.0000780901f;
const f32 SPELL_HASTE_RATING_TO_HASTE = 0.0000780901f;
const f32 HASTE_TO_HASTE_RATING = 128.057159423828125;

const f32 MASTERY_RATING_PER_MASTERY = 179.280044555664062f;
const f32 BASE_MASTERY = 16.0f;

//crit reduction for attacks
const int BASE_CRIT_REDUCTION = 300;
const int WHITE_CRIT_REDUCTION = BASE_CRIT_REDUCTION + (TARGET_LEVEL - ATTACKER_LEVEL) * 60;
const int YELLOW_CRIT_REDUCTION = (TARGET_LEVEL - ATTACKER_LEVEL) * 60;
const int BASE_CRIT = 300;

const f32 STORMSTRIKE_MANA = 0.094f;

const int WINDFURY_DUALWIELD_PROC_CHANCE = 3600;
const int WINDFURY_PROC_CHANCE = 2000;
const int WINDFURY_BONUS_AP = 5090;

const f32 FLAMETONGUE_DAMAGE_MULTIPLIER = 0.07f;

const f32 FLAMETONGUE_COEFFICIENT = 0.1253f;
const f32 FLAMETONGUE_DAMAGE = 306.0f;
const f32 FLAMETONGUE_UNLEASHED_WEAPON_COEFFICIENT = 0.43f;
const f32 FLAMETONGUE_UNLEASHED_WEAPON_DAMAGE = 1070.0f;

const f32 FROSTBRAND_COEFFICIENT = 0.1f;
const f32 FROSTBRAND_DAMAGE = 612.0f;
const f32 FROSTBRAND_UNLEASHED_WEAPON_COEFFICIENT = 0.3858f;
const f32 FROSTBRAND_UNLEASHED_WEAPON_DAMAGE = 835.5; 

const f32 SEARING_TOTEM_COEFFICIENT = 0.16699996f;
const int64 SEARING_TOTEM_INTERVAL = 165;
const f32 SEARING_TOTEM_DAMAGE = 96.0f;
const f32 SEARING_TOTEM_MANA = 0.07f;
const f32 SEARING_FLAMES_FLAMETONGUE_MULTIPLIER = 0.08f;


const f32 MAGMA_TOTEM_COEFFICIENT = 0.067000002f;
const int64 MAGMA_TOTEM_INTERVAL = 200;
const f32 MAGMA_TOTEM_DAMAGE = 268.0f;
const f32 MAGMA_TOTEM_MANA = 0.18f;

const f32 EARTH_SHOCK_COEFFICIENT = 0.386000007f;
const f32 EARTH_SHOCK_DAMAGE = 931.0f;
const f32 EARTH_SHOCK_MANA = 0.18f;

const f32 FLAME_SHOCK_COEFFICIENT = 0.214000002f;
const f32 FLAME_SHOCK_DAMAGE = 531.0f;
const f32 FLAME_SHOCK_DOT_COEFFICIENT = 0.100000002f;
const f32 FLAME_SHOCK_DOT_DAMAGE = 142.0f;
const int64 FLAME_SHOCK_DOT_INTERVAL = 300;
const int64 FLAME_SHOCK_DEBUFF_DURATION = 1800;
const f32 FLAME_SHOCK_MANA = 0.17f;

const f32 FROST_SHOCK_COEFFICIENT = 0.386000007f;
const f32 FROST_SHOCK_DAMAGE = 872.0f;
const f32 FROST_SHOCK_MANA = 0.18f;

const f32 LAVA_BURST_COEFFICIENT = 0.628000021f;
const f32 LAVA_BURST_DAMAGE = 1586.1f;
const f32 LAVA_BURST_MANA = 0.10f;

const f32 LAVA_LASH_MANA = 0.04f;

const f32 LIGHTNING_BOLT_COEFFICIENT = 0.713999987f;
const f32 LIGHTNING_BOLT_DAMAGE = 770.0f;
const f32 LIGHTNING_BOLT_MANA = 0.06f;

const f32 CHAIN_LIGHTNING_COEFFICIENT = 0.5714f;
const f32 CHAIN_LIGHTNING_JUMP_DAMAGE_REDUCTION = 0.30f;
const f32 CHAIN_LIGHTNING_DAMAGE = 1092.0f;
const f32 CHAIN_LIGHTNING_MANA = 0.26f;

const f32 FIRE_NOVA_COEFFICIENT = 0.143000007f;
const f32 FIRE_NOVA_DAMAGE = 686.0f; 
const f32 FIRE_NOVA_MANA = 0.22f;

const f32 LIGHTNING_SHIELD_COEFFICIENT = 0.26699999f;
const f32 LIGHTNING_SHIELD_DAMAGE = 391.0f;
const f32 LIGHTNING_SHIELD_MANA = 0.00f;

const int WATER_SHIELD_MP5 = 354;

const f32 FIRE_ELEMENTAL_MANA = 0.23f;
const int FIRE_ELEMENTAL_COOLDOWN = 60000;
const int FIRE_ELEMENTAL_DURATION = 12000;
const int FIRE_ELEMENTAL_SWING_BASE = 180;
const f32 FIRE_ELEMENTAL_SWING_AP_COEFFICIENT = 2.0f / 14;
const f32 FIRE_ELEMENTAL_SWING_SP_COEFFICIENT = 0.6f;
const int FIRE_ELEMENTAL_SWING_SPEED = 200;
const int FIRE_ELEMENTAL_FIRE_SHIELD_BASE = 96;
const f32 FIRE_ELEMENTAL_FIRE_SHIELD_COEFFICIENT = 0.015f;
const int FIRE_ELEMENTAL_FIRE_SHIELD_COOLDOWN = 300;
const int FIRE_ELEMENTAL_FIRE_NOVA_BASE_LOW = 925;
const int FIRE_ELEMENTAL_FIRE_NOVA_BASE_HIGH = 1050;
const f32 FIRE_ELEMENTAL_FIRE_NOVA_COEFFICIENT = 0.5f;
const int FIRE_ELEMENTAL_FIRE_NOVA_COOLDOWN = 500;
const int FIRE_ELEMENTAL_FIRE_NOVA_CAST_TIME = 250;
const f32 FIRE_ELEMENTAL_FIRE_NOVA_MANA = 207.0f;
const int FIRE_ELEMENTAL_FIRE_BLAST_BASE_LOW = 725;
const int FIRE_ELEMENTAL_FIRE_BLAST_BASE_HIGH = 825;
const f32 FIRE_ELEMENTAL_FIRE_BLAST_COEFFICIENT = 0.2f;
const int FIRE_ELEMENTAL_FIRE_BLAST_COOLDOWN = 500;
const f32 FIRE_ELEMENTAL_FIRE_BLAST_MANA = 276.0f;
const int FIRE_ELEMENTAL_MANA_BASE = 4000;
const f32 FIRE_ELEMENTAL_MANA_COEFFICIENT = 0.3f;
const f32 FIRE_ELEMENTAL_MANA_REGEN_PER_TICK = 10.66f;
const int FIRE_ELEMENTAL_MELEE_CRIT_CHANCE_BASE = BASE_CRIT;
const int FIRE_ELEMENTAL_SPELL_CRIT_CHANCE_BASE = BASE_CRIT;
const f32 FIRE_ELEMENTAL_MELEE_CRIT_MODIFIER = 2.0f;
const f32 FIRE_ELEMENTAL_SPELL_CRIT_MODIFIER = 1.5f;

const f32 UNLEASHED_ELEMENTS_MANA = 0.07f; 	
const int UNLEASHED_ELEMENTS_COOLDOWN = 1500;
const f32 UNLEASHED_WEAPON_WINDFURY_MULTIPLIER = 0.90f; 
const int UNLEASHED_WEAPON_WINDFURY_DURATION = 1200; 	
const int UNLEASHED_WEAPON_WINDFURY_STACKS = 6;	
const f32 UNLEASHED_WEAPON_WINDFURY_HASTE = 0.50f;	
const int UNLEASHED_WEAPON_FLAMETONGUE_DURATION = 800;	
const f32 UNLEASHED_WEAPON_FLAMETONGUE_BUFF = 0.30f; 

const int ORC_RACIAL_BLOOD_FURY_ATTACK_POWER_BONUS = 1344;
const int ORC_RACIAL_BLOOD_FURY_SPELL_POWER_BONUS = 672;

const f32 SPIRIT_WOLVES_MANA = 0.12f;
const int SPIRIT_WOLVES_COOLDOWN = 12000;
const int SPIRIT_WOLVES_DURATION = 3000;
const int SPIRIT_WOLVES_ATTACK_POWER_BASE = 932;
const f32 SPIRIT_WOLVES_DPS_BASE = 490.06f;
const int SPIRIT_WOLVES_ATTACK_SPEED_BASE = 150;
const f32 SPIRIT_WOLVES_ATTACK_POWER_SCALING = 0.3295f;
const f32 SPIRIT_WOLVES_HIT_SCALING = 1.0f;
const f32 SPIRIT_WOLVES_CRIT_SCALING = 0.0f;
const f32 SPIRIT_WOLVES_EXPERTISE_SCALING = 1.0f;

const int ELEMENTAL_PRECISION_SPIRIT_BASE = 158;